/*
 * Copyright (c) 2018-2999 湖南洛云网络科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 */

package com.yami.shop.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yami.shop.bean.model.FlowPageAnalyseUser;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 流量分析—页面数据统计表
 *
 * @author YXF
 * @date 2020-07-16 16:23:53
 */
public interface FlowPageAnalyseUserMapper extends BaseMapper<FlowPageAnalyseUser> {

    /**
     * ‘根据date获取时间处于date之前’或者‘根据时间范围’获取进入商城的所有访客数
     * @param date 最大时间
     * @param startTime 起始时间
     * @param endTime 终止时间
     * @return 进入商城的所有访客数
     */
    Integer countAllVisitor(@Param("date") Date date, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 按日期统计访客人数
     * @param beforeYear
     * @param endTime 结束时间
     * @return 访客人数
     */
    Integer countVisitorNumByDate(@Param("beforeYear") Date beforeYear, @Param("endTime") Date endTime);

    /**
     * 按日期统计付费访客人数
     * @param beforeYear
     * @param startTime 结束时间
     * @return 付费访客人数
     */
    Integer countPaidVisitorNumByDate(@Param("beforeYear") Date beforeYear, @Param("startTime") Date startTime);

    /**
     * 按时间范围统计访客数
     * @param startTime 起始时间
     * @param endTime 终止时间
     * @return 访客数列表
     */
    List<String> countVisitors(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 根据类型与时间范围统计保留的访客数
     * @param type 类型
     * @param startTime 起始时间
     * @param endTime 终止时间
     * @param uuids
     * @return 保留的访客数列表
     */
    List<String> countVisitorRetained(@Param("type") Integer type, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("uuids") List<String> uuids);

}
